import Vue from 'vue';
import Vuex from 'vuex';
import { api } from '../Axios';
import _ from 'lodash';

import { Item } from '@/assets/items.js'; //引入配方对象
console.log(
  '%c [ Item ]-7',
  'font-size:13px; background:pink; color:#bf2c9f;',
  Item
);

export default {
  modules: {},
  namespaced: true,
  state: {
    items: [], //道具列表，也是背包里的道具列表
    itemDetails: {}, //道具详情（按 ID 索引），可以按需检索必要的信息
  },
  getters: {
    // getValue: (state) => (key) => {
    //   return state[key];
    // },
    getItemById: (state) => {
      return (id) => {
        let item = _.find(state.items, { id: id });
        return item || null;
      };
    },
    getItemDetailsById: (state) => {
      return (id) => {
        let item = _.find(state.items, { id: id });
        return item;
      };
    },
  },
  mutations: {
    ADD_ITEM(state, item) {
      let _id = item.id;
      let sameItem = _.find(state.items, { id: _id });
      if (sameItem) {
      }

      let obj = new Item(item);
      state.items.push(obj);
    },
    SET_ITEM_DETAILS(state, { id, details }) {
      state.itemDetails[id] = details;
    },
  },

  actions: {},
};

// const itemsModule = {
//   namespaced: true,
//   state: () => ({
//     items: [], // 道具列表
//     itemDetails: {}, // 道具详情（按 ID 索引）
//   }),
//   mutations: {
//     ADD_ITEM(state, item) {
//       state.items.push(item);
//     },
//     SET_ITEM_DETAILS(state, { id, details }) {
//       state.itemDetails[id] = details;
//     },
//   },
//   actions: {
//     fetchItemDetails({ commit }, itemId) {
//       // 模拟异步请求
//       setTimeout(() => {
//         const details = {
//           id: itemId,
//           name: `Item ${itemId}`,
//           description: 'Details...',
//         };
//         commit('SET_ITEM_DETAILS', { id: itemId, details });
//       }, 1000);
//     },
//   },
//   getters: {
//     getItemById: (state) => (id) => state.itemDetails[id] || null,
//   },
// };

// const backpackModule = {
//   namespaced: true,
//   state: () => ({
//     slots: [], // 背包格子，每个格子存储一个道具 ID
//   }),
//   mutations: {
//     ADD_TO_BACKPACK(state, itemId) {
//       state.slots.push(itemId);
//     },
//   },
//   getters: {
//     getBackpackItems: (state, getters, rootState, rootGetters) => {
//       return state.slots.map((slotId) =>
//         rootGetters['items/getItemById'](slotId)
//       );
//     },
//   },
// };

// const recipesModule = {
//   namespaced: true,
//   state: () => ({
//     recipes: [], // 配方列表
//   }),
//   mutations: {
//     ADD_RECIPE(state, recipe) {
//       state.recipes.push(recipe);
//     },
//   },
//   getters: {
//     getRecipeById: (state) => (id) =>
//       state.recipes.find((r) => r.id === id) || null,
//   },
// };

// export default {
//   namespaced: true,
//   modules: {
//     items: itemsModule,
//     recipes: recipesModule,
//   },
// };
